package cn.iocoder.yudao.module.member.controller.admin.confpoint.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;

@Schema(description = "管理后台 - 积分奖励规则新增/修改 Request VO")
@Data
public class MemberConfPointSaveReqVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5335")
    private Long id;

    @Schema(description = "关联物料策略ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "关联物料策略ID不能为空")
    private Long materialPolicyId;

    @Schema(description = "积分业务类型 实物料买单,实物料卖单,锁价买料,锁价卖料,	                                存料延期,提料延期,推荐客户,注册代理,	                                平台开户,首付定金,付定金", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "积分业务类型 实物料买单,实物料卖单,锁价买料,锁价卖料,	                                存料延期,提料延期,推荐客户,注册代理,	                                平台开户,首付定金,付定金不能为空")
    private Integer transactionType;

    @Schema(description = "适用金属类型（非金属相关业务为空）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "适用金属类型（非金属相关业务为空）不能为空")
    private Integer metalType;

    @Schema(description = "计算单位数量（每X克/元）")
    private BigDecimal perUnit;

    @Schema(description = "计算单位类型：按克/按金额/按单", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "计算单位类型：按克/按金额/按单不能为空")
    private Integer perType;

    @Schema(description = "奖励积分数", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "奖励积分数不能为空")
    private BigDecimal points;

}